<!DOCTYPE html>
<html lang=''>

<head>
    <meta charset='UTF-8'>
    <meta http-equiv='X-UA-Compatible' content='IE=edge'>
    <meta name='viewport' content='width=device-width, initial-scale=1.0'>
    <title>Document</title>
    <script src='./vue.js'></script>
    <style>
        /* 下面我们会解释这些 class 是做什么的 */
        /* 
        .my-enter-active 进入动画 
        .my-leave-active 离开动态 
         */
        .my-enter-active,
        .my-leave-active {
            transition: opacity 0.5s ease;
        }

        /* 
        .my-enter-from  进入动画的开始状态
        .my-leave-to 离开动画的结束状态
        */
        .my-enter-from,
        .my-leave-to {
            opacity: 0;
        }
    </style>
</head>

<body>
    <div id='app'>
        <button @click="show=!show">切换显示</button>
        <!-- transition 该组件是用来实现过度或者动画用的，他会自动给元素添加 class -->
        <!-- 通过 name 属性来设置 class 以什么开头 -->
        <!-- appear 规定该过度一运行就会立即执行一次 -->
        <!-- transition 内部只能有一个根标签，多个根标签会有警告 -->
        <!-- <transition appear name="my">
            <p v-if="show">永远相信爱情，但不相信爱情会永远。</p>
        </transition> -->


        <!-- 如果说需要过渡多个元素，此时可以使用动画组 -->
        <transition-group appear name="my">
            <p v-if="show">永远相信爱情，但不相信爱情会永远。</p>
            <p v-if="show">永远相信爱情，但不相信爱情会永远。</p>
        </transition-group>

        <!-- 

            v-enter-from：进入动画的起始状态。在元素插入之前添加，在元素插入完成后的下一帧移除。

            v-enter-active：进入动画的生效状态。应用于整个进入动画阶段。在元素被插入之前添加，在过渡或动画完成之后移除。这个 class 可以被用来定义进入动画的持续时间、延迟与速度曲线类型。

            v-enter-to：进入动画的结束状态。在元素插入完成后的下一帧被添加 (也就是 v-enter-from 被移除的同时)，在过渡或动画完成之后移除。

            v-leave-from：离开动画的起始状态。在离开过渡效果被触发时立即添加，在一帧后被移除。

            v-leave-active：离开动画的生效状态。应用于整个离开动画阶段。在离开过渡效果被触发时立即添加，在过渡或动画完成之后移除。这个 class 可以被用来定义离开动画的持续时间、延迟与速度曲线类型。

            v-leave-to：离开动画的结束状态。在一个离开动画被触发后的下一帧被添加 (也就是 v-leave-from 被移除的同时)，在过渡或动画完成之后移除。

         -->

    </div>
</body>
<script>
    const app = Vue.createApp({
        data () {
            return {
                show: true
            }
        },
    })
    app.mount('#app')
</script>

</html>